#ifndef _I_API_TEXTURE_2D_H_
#define _I_API_TEXTURE_2D_H_

#include "../interface/I_api_Resource.h"

class I_api_Texture_2D : public I_api_Resource
{
protected:
	S_api_Texture2D_Desc m_Desc;

	I_api_Texture_2D(const S_api_Texture2D_Desc *pDesc,
									const S_api_Subresource_Data *pInitialData,
									const I_api_Device * pDevice) : I_api_Resource(E_api_Resource_Dimension_Texture2d, pDevice)
	{
		m_Desc = *pDesc;
	}
public:
	virtual ~I_api_Texture_2D(){}
	virtual	void	GetDesc(S_api_Texture2D_Desc * pDesc) { if (pDesc) *pDesc = m_Desc; } 
	virtual	bool	Map(u32 Subresource, E_api_Map MapType, u32 MapFlags, S_api_Mapped_Texture2D *pMappedTex2D)=0;
	virtual	bool	Unmap(u32 Subresource)=0;

	virtual	void	*	Get()=0;
};

#endif